The invention relates generally to motor control involving a plurality of synchronized motors. More particularly, the invention relates to a technique for high accuracy simulation of an incremental encoder pulse output when an incremental encoder is not available or a fully digital encoder is in use.
Certain applications of motor control require precisely monitoring the position of a motor as it revolves. For example, synchronizing a plurality of motors in systems of conveyers, rolling or drawing mills, printing presses and so forth may require that all motors maintain the same relative angular position and velocity. The position of each motor is typically tracked using an incremental encoder. A primary motor drive, or master, provides a master incremental encoder signal signifying the position of a master motor to the remaining motor drives, or slaves. The slave motor drives synchronize to the master by maintaining the same relative angular position as indicated by the incremental encoder from the master motor drive.
One common form of incremental encoder, known as a sine/cosine encoder, assesses motor position by scanning optical markings on a disk rotating with the load of the motor. The encoder generates a two-channel output consisting of sine and cosine waves. After discretely sampling the two-channel sine and cosine output waves, interpolation techniques may be employed to achieve an increase in position resolution of several orders of magnitude. Often, each of the sampled sine and cosine waves is converted into a square wave corresponding to the high resolution interpolation. In addition to the two square wave signals, known as A and B, or alternatively, A quad B, a sine/cosine incremental encoder may also output a short periodic pulse, known as Z, to signify the start of each motor revolution. To determine precise incremental position and/or velocity, a device may count the edges of the square waves, deriving a digital representation of motor position from the A, B, and/or Z encoder pulse output signals.
Alternatively, another form of incremental encoder known as a virtual encoder may determine motor position entirely in software. Rather than obtain an incremental position based on direct observation of motor rotation, a virtual encoder determines motor position based on the control signals sent to the motor. For example, when a ramp generator sends a reference velocity signal to a motor, a virtual encoder may use the reference velocity signal, in combination with a preset number of pulses per revolution (e.g., 2048 or 4096), to output a digital reference position signal. The digital reference position signal is equivalent to an edge marking count of a conventional sine/cosine incremental encoder pulse output.
Because most modern motor drives utilize digital control circuitry, and a virtual encoder may be implemented in software, a virtual encoder is frequently preferred to a sine/cosine incremental encoder. However, not all equipment may be configured to use a digital incremental position signal. Some equipment, particularly older equipment, may require an incremental encoder pulse output signal (A, B, and/or Z). Accordingly, systems employing such equipment may require at least one sine/cosine incremental encoder to provide the necessary encoder pulse output signals, though a virtual encoder alone may be preferred.
Certain modes of operation may further preclude a sine/cosine incremental encoder from outputting an encoder pulse output signal. For example, it may be desirable to turn off one motor in a system of synchronized motors, but continue to use certain other equipment as if that motor remained on and synchronized. Multi-color printing applications may benefit from such a mode of operation. A multi-color printing press may employ four single-color printing stations, each supported by additional process control equipment to ensure proper paper position. When printing in only three colors, only three printing stations may be active, but process control equipment from all four print stations may be needed. For such an application, a conventional sine/cosine incremental encoder assigned to the inactive motor would not output an encoder pulse output, as the physical position of the motor would not change. However, a virtual master encoder could provide a digital position signal representing what position the motor would have as if the motor were active. If the additional supporting equipment required encoder pulse output signals, rather than only a digital reference position signal, such an application would be impossible without an alternative means of obtaining an encoder pulse output signal.
Though attempts have been made to work around the existing problem, such efforts have failed to produce a high accuracy encoder pulse output signal from a digital position signal without unnecessary jitter or delay. Moreover, such efforts may also temporarily result in excessive position error.